package cn.com.jdbc;
//需求：利用jdbc,根据用户名和密码查询cgb2104库里的user表
/**不推荐使用*
 * 【传输器和动态拼接】存在SQL注入攻击问题，暴露不安全问题。
 * */
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Scanner;

public class TestLogin {
    public static void main(String[] args) {
        login();

        }
    private static void login() {
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            String url = "jdbc:mysql://localhost:3306/cgb2105?characterEncoding=utf8";
            Connection conn = DriverManager.getConnection(url, "root", "root");
            Statement st = conn.createStatement();//传输器不用传sql参数
            //需要用户输入user, pwd
            String id = new Scanner(System.in).nextLine();
            String user = new Scanner(System.in).nextLine();
            String pwd = new Scanner(System.in).nextLine();
            /*SQL匹配字段:单引号注意不要有空格*//*传输器和动态拼接存在SQL注入攻击问题，不安全。*/
            String sql = "select * from user where id = '"+id+"' and name='"+user+"' and password='"+pwd+"'  ";//动态拼接
            ResultSet rs = st.executeQuery(sql);/*传输器后面的执行语句需要传入SQL参数*/
            //判断用户输入是否成功还是失败，需要打印出来
            if(rs.next()){
                System.out.println("匹配一致，登录成功！");
            }else {
                System.out.println("匹配不一致，登录失败!");
            }
            //释放三种资源
                      conn.close();
            st.close();


        } catch (Exception e) { //修改父类异常
            e.printStackTrace();
        }



    }
}
